package it.controllocredito.backend.phone.calllog;

import it.controllocredito.backend.Singleton;
import it.controllocredito.backend.persistence.DatabaseHandler;
import it.controllocredito.backend.persistence.bean.RegistroChiamate;
import it.controllocredito.backend.persistence.tables.RegistroChiamateTable;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import android.content.Context;
import android.os.AsyncTask;
import android.provider.CallLog;
import android.util.Log;

public class AsyncRegistroUpdate extends AsyncTask {

	private static final String	log_class_name	= "AsyncRegistroUpdate";
	private Context	context;
    
	public AsyncRegistroUpdate(Context context){
		this.context=context;
	}

	@SuppressWarnings("unused")
	@Override
	protected Object doInBackground(Object... arg0) {
		System.out.println("Doing it in background!");
		
		Log.i(log_class_name, "Sleeping");
		try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		Log.i(log_class_name, "Waking up and updating");
		
		String numeroTelefono;
		RegistroChiamate registroChiamate;
		
		Singleton.getInstance().getManagerCallLogHandler(this.context).aggiornaRegistroChiamate(null);
		ArrayList<RegistroChiamate> chiamate = Singleton.getInstance().getManagerCallLogHandler(this.context).aggiornaRegistroChiamate(null);
		
		if (chiamate != null && chiamate.size() > 0){
			registroChiamate = chiamate.get(0);
			numeroTelefono = registroChiamate.getPrefissoTel() + registroChiamate.getNumeroTel();
			
			// TipoChiamata: 1. incoming, 2. outgoing, 3. missed
			long consumo = 0;
			if (registroChiamate.getTipo() != CallLog.Calls.MISSED_TYPE){
				consumo = registroChiamate.getDurata();
			}
			
			//creo il nuovo record su db locale
			GregorianCalendar data = new GregorianCalendar();
			DatabaseHandler databaseHandler = new DatabaseHandler(context);
			databaseHandler.addRecord(RegistroChiamateTable.getName(),
							RegistroChiamateTable.createRecord(registroChiamate.getAnno(),registroChiamate.getMese(), registroChiamate.getGiorno(), 
									registroChiamate.getGiornoSettimana(),registroChiamate.getOra(),
									registroChiamate.getTipo(), registroChiamate.getDurata(), "", registroChiamate.getNumeroTel()));			
		}
		
		return null;
	}
	
	protected void onPostExecute() {
	       
    }
 
}